02.01 - Conceptos Generales
Lenguajes Estructurados
Lenguaje C
El lenguaje C es un lenguaje de programación de alto nivel, desarrollado en la década de 1970. Se caracteriza por su eficiencia, su capacidad para trabajar a bajo nivel y su sintaxis compacta.
#include <stdio.h>
int main() {
printf("Hola, mundo!\n");
return 0;
}
- La función "main" es el punto de entrada del programa.
- La biblioteca "stdio.h" se utiliza para entrada/salida.
- La función "printf" se utiliza para imprimir texto en la consola.
- El carácter "\n" se utiliza para indicar un salto de línea.
- La declaración "return 0" indica que el programa ha finalizado correctamente.
Sintaxis básica
La sintaxis básica de C es relativamente sencilla. Un programa en C se compone de funciones, que a su vez se componen de declaraciones y expresiones.
Declaraciones
Una declaración es una instrucción que le dice al compilador qué hacer. Por ejemplo, una declaración puede ser una asignación de valor a una variable, una llamada a una función o una declaración de una variable.
Expresiones
Una expresión es una combinación de valores, variables, operadores y funciones que se evalúa para producir un resultado.
Tipos de datos
C es un lenguaje fuertemente tipado, lo que significa que cada variable tiene un tipo de datos asociado. El tipo de datos determina el tamaño y el rango de valores que puede tener una variable, así como el conjunto de operaciones que se pueden realizar en ella.
Tipos de datos básicos
C proporciona los siguientes tipos de datos básicos:
- Enteros: se utilizan para representar números enteros. Por ejemplo, 1, 2, 3, 4, etc.
- Punto flotante: se utilizan para representar números con decimales. Por ejemplo, 1.0, 2.5, 3.14159, etc.
- Caracteres: se utilizan para representar caracteres individuales. Por ejemplo, 'a', 'b', 'c', etc.
- Booleanos: se utilizan para representar valores lógicos. Por ejemplo, true, false.
Tipos de datos compuestos
C también proporciona los siguientes tipos de datos compuestos:
- Arreglos: se utilizan para representar colecciones de datos del mismo tipo. Por ejemplo, [1, 2, 3, 4, 5].
- Estructuras: se utilizan para representar colecciones de datos de diferentes tipos. Por ejemplo, {nombre: "John", edad: 30}.
- Punteros: se utilizan para representar direcciones de memoria. Por ejemplo, 0x7ffeefbff5a0.
Variables
Una variable es un espacio de memoria que se utiliza para almacenar un valor. Cada variable tiene un nombre y un tipo de datos asociado. El nombre de una variable se utiliza para referirse a su valor.
Constantes
Una constante es un espacio de memoria que se utiliza para almacenar un valor que no cambia. Cada constante tiene un nombre y un tipo de datos asociado. El nombre de una constante se utiliza para referirse a su valor.
Operadores
Los operadores son símbolos especiales que se utilizan para realizar operaciones en variables y constantes.
- Aritméticos: se utilizan para realizar operaciones aritméticas. Por ejemplo, +, -, *, /, %
- Relacionales: se utilizan para comparar valores. Por ejemplo, ==, !=, <, >, <=, >=
- Lógicos: se utilizan para combinar expresiones lógicas. Por ejemplo, &&, ||, !
- Bit a bit: se utilizan para realizar operaciones bit a bit. Por ejemplo, &, |, ^, ~, <<, >>
Funciones
Una función es un bloque de código que se ejecuta cuando se llama a su nombre. Las funciones se utilizan para organizar el código en bloques reutilizables.
- Se utilizan para encapsular un bloque de código que se puede reutilizar.
- Se definen mediante la palabra clave "void" o el tipo de dato que devuelve.
int suma(int a, int b) {
return a + b;
}
void main() {
int resultado = suma(2, 3);
printf("%d\n", resultado);
}
Estructuras de control de flujo
- if-else: Se utiliza para ejecutar un bloque de código si se cumple una condición, y otro bloque de código si no se cumple.
if (edad >= 18) {
printf("Eres mayor de edad.\n");
} else {
printf("Eres menor de edad.\n");
}
- switch: Se utiliza para ejecutar diferentes bloques de código en función del valor de una variable.
switch (dia) {
case 1:
printf("Lunes\n");
break;
case 2:
printf("Martes\n");
break;
case 3:
printf("Miércoles\n");
break;
default:
printf("Día desconocido\n");
break;
}
Bucles
- for: Se utiliza para repetir un bloque de código un número determinado de veces.
for (int i = 0; i < 10; i++) {
printf("%d\n", i);
}
- while: Se utiliza para repetir un bloque de código mientras se cumpla una condición.
int i = 0;
while (i < 10) {
printf("%d\n", i);
i++;
}
Arrays
- Se utilizan para almacenar colecciones de datos del mismo tipo.
- Se accede a los elementos de un array mediante un índice.
int numeros[5] = { 1, 2, 3, 4, 5 };
printf("%d\n", numeros[0]);
Punteros
- Se utilizan para almacenar direcciones de memoria.
- Se definen mediante el operador "*".
int a = 5;
int *p = &a;
printf("%d\n", *p);
Estructuras
- Se utilizan para encapsular colecciones de datos de diferentes tipos.
- Se definen mediante la palabra clave "struct".
struct Persona {
char nombre[20];
int edad;
};
struct Persona p = { "Juan", 20 };
printf("%s\n", p.nombre);